home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 January: Mac OS SDK / Dev.CD Jan 97 SDK2.toast / Development Kits (Disc 2) / OpenDoc Development Framework / ODFDev / ODF / Framewrk / FWSemEvt / FWSemInt.h < prev    next >
Encoding:
Text File  |  1996-09-17  |  5.3 KB  |  172 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                FWSemInt.h
  4. //    Release Version:    $ ODF 2 $
  5. //
  6. //    Copyright:            (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #ifndef FWSEMINT_H
  11. #define FWSEMINT_H
  12.  
  13. #ifndef FWDESC_H
  14. #include "FWDesc.h"
  15. #endif
  16.  
  17. #ifndef _ODTYPES_
  18. #include "ODTypes.h"
  19. #endif
  20.  
  21. #ifndef FWEXCLIB_H
  22. #include "FWExcLib.h"
  23. #endif
  24.  
  25. #include "FWTMap.tpp"
  26.  
  27. //========================================================================================
  28. //    Forward Declarations
  29. //========================================================================================
  30.  
  31. class ODExtension;
  32. class FW_MScriptable;
  33. class FW_CPart;
  34. class FW_CAppleEvent;
  35. class FW_CSemanticInterface;
  36. class FW_MPartScriptable;
  37. class FW_OSemanticInterface;
  38. class ODNameResolver;
  39. class ODSession;
  40. class ODOSLToken;
  41. class FW_CFrame;
  42.  
  43. //========================================================================================
  44. // class FW_CSemanticInterface
  45. //========================================================================================
  46.  
  47. class FW_CSemanticInterface
  48. {
  49. public:
  50.     FW_DECLARE_AUTO(FW_CSemanticInterface)
  51.  
  52. public:
  53.                                 FW_CSemanticInterface(Environment* ev, FW_CPart* part);
  54.     virtual                     ~FW_CSemanticInterface();
  55.                                                             
  56.     //--------------------------------------------------------------------------
  57.     // SOM Semantic Interface Factory
  58.  
  59.     virtual FW_OSemanticInterface*     CreateSOMInterface(Environment* ev, 
  60.                                                     FW_CPart* part, 
  61.                                                     const char* name,
  62.                                                     void* refCon);
  63.                                                                                                         
  64.     FW_OSemanticInterface*            AcquireSOMInterface(Environment* ev);
  65.  
  66.     //--------------------------------------------------------------------------
  67.     // Virtual Semantic Interface Methods
  68.         
  69.     virtual void                     CallEventHandler(Environment* ev, 
  70.                                         FW_CAppleEvent& appleEvent,
  71.                                         FW_CAppleEvent& reply);
  72.     
  73.     void                            CallCoercionHandler(Environment* ev,
  74.                                         const FW_CDesc& theDesc,
  75.                                         ODDescType toType,
  76.                                         FW_CDesc& theResult);                                                
  77.  
  78.     virtual void                    CallPredispatchProc(Environment* ev,
  79.                                         FW_CAppleEvent& appleEvent,
  80.                                         FW_CAppleEvent& reply);
  81.  
  82.     virtual void                    CallObjectAccessor(Environment* ev,
  83.                                         ODDescType desiredClass,
  84.                                         ODOSLToken* container,
  85.                                         ODDescType containerClass,
  86.                                         ODDescType form,
  87.                                         FW_CDesc& selectionData,
  88.                                         ODOSLToken* value);
  89.                                                     
  90.     virtual void                    CallCompareProc(Environment* ev,
  91.                                         ODDescType oper,
  92.                                         ODOSLToken* obj1,
  93.                                         ODOSLToken* obj2,
  94.                                         ODBoolean* result);
  95.                                                     
  96.     virtual void                    CallCountProc(Environment* ev,
  97.                                         ODDescType desiredType,
  98.                                         ODDescType containerClass,
  99.                                         ODOSLToken* container,
  100.                                         ODSLong* result);    
  101.  
  102.     virtual void                    CallDisposeTokenProc(Environment* ev,
  103.                                         ODOSLToken* unneededToken);
  104.                                                         
  105.     virtual void                    CallGetErrDescProc(Environment* ev,
  106.                                         ODDesc** errDesc);
  107.                                                     
  108.     virtual void                    CallGetMarkTokenProc(Environment* ev,
  109.                                         ODOSLToken* dContainerToken,
  110.                                         ODDescType    containerClass,
  111.                                         ODOSLToken* result);
  112.                                                         
  113.     virtual void                    CallMarkProc(Environment* ev,
  114.                                         ODOSLToken* objectToMarkToken,
  115.                                         ODOSLToken* markingListToken,
  116.                                         ODSLong index);
  117.     
  118.     virtual void                    CallAdjustMarksProc(Environment* ev,
  119.                                                         ODSLong newStart,
  120.                                                         ODSLong newStop,
  121.                                                         ODOSLToken* markToken);
  122.         
  123.     ODSShort                        GetOSLSupportFlags(Environment* ev);
  124.  
  125.     void                            SetOSLSupportFlags(Environment* ev, ODSShort flags);
  126.                                                     
  127.     virtual void                    UsingPredispatchProc(Environment* ev, ODBoolean usingNotUsing);
  128.         
  129.     ODDesc*                            GetDescFromToken(Environment* ev, ODOSLToken* token) const;
  130.     
  131.     virtual FW_MScriptable*            AcquireTargetObject(Environment* ev, FW_CAppleEvent& event);
  132.                                                                                         
  133.     virtual void                    Resolve(Environment *ev,
  134.                                             const FW_CDesc& objectSpec,
  135.                                             FW_CDesc& odfToken,
  136.                                             ODPart* contextPart = NULL) const;
  137.     
  138.     virtual FW_MScriptable*            AcquireScriptableFromToken(Environment* ev, const FW_CDesc& odToken) const;
  139.                                                                 
  140.     inline void                     SetDefaultContainer(FW_MPartScriptable* defaultContainer)
  141.                                         { fDefaultContainer = defaultContainer; }
  142.  
  143.     inline FW_MPartScriptable*        GetDefaultContainer() const { return fDefaultContainer; }
  144.     
  145.     inline FW_CPart*                 GetPart() const { return fPart; }
  146.  
  147.     //--------------------------------------------------------------------------
  148.     // Private registration and creation
  149.  
  150.     static ODExtension*             PrivCreate(Environment* ev, FW_CPart* part, const char* name, void* refCon);
  151.  
  152. protected:
  153.     FW_MScriptable*                    CreateCollectionFromList(Environment* ev,
  154.                                                             FW_CPart* part,
  155.                                                             const FW_CDesc& objectList,
  156.                                                             ODDescType whichProperty = keyNoKey) const;
  157. private:
  158.     FW_MPartScriptable*                fDefaultContainer;
  159.     FW_CPart*                        fPart;
  160.     
  161.     short                            fOSLFlags;
  162.     FW_Boolean                        fUsingPredispatchProc;
  163. };
  164.  
  165. //========================================================================================
  166. // Debugging Utilities
  167. //========================================================================================
  168.  
  169. void FW_DebugIdentifyPart(Environment* ev, FW_CFrame* frame, const FW_CColor& color);
  170.  
  171. #endif // FWSEMINT_H
  172.